package com.boomshake.service;

import com.boomshake.dto.CommissionConfigDTO;
import com.boomshake.common.PageResult;

import java.util.List;

/**
 * 佣金配置服务接口
 */
public interface CommissionConfigService {
    
    /**
     * 分页查询佣金配置列表
     * @param storeId 门店ID，可为null，为null时查询所有
     * @param page 页码
     * @param size 每页数量
     * @return 分页结果
     */
    PageResult<CommissionConfigDTO> getCommissionConfigList(Long storeId, int page, int size);
    
    /**
     * 获取佣金配置详情
     * @param id 配置ID
     * @return 佣金配置
     */
    CommissionConfigDTO getCommissionConfigById(Long id);
    
    /**
     * 新增佣金配置
     * @param config 佣金配置
     * @return 新增结果
     */
    Long addCommissionConfig(CommissionConfigDTO config);
    
    /**
     * 更新佣金配置
     * @param config 佣金配置
     * @return 是否成功
     */
    boolean updateCommissionConfig(CommissionConfigDTO config);
    
    /**
     * 删除佣金配置
     * @param id 配置ID
     * @return 是否成功
     */
    boolean deleteCommissionConfig(Long id);
    
    /**
     * 获取门店所有等级的分销比例配置
     * @param storeId 门店ID
     * @return 分销比例配置列表
     */
    List<CommissionConfigDTO> getStoreCommissionRates(Long storeId);
    
    /**
     * 批量更新门店的分销比例配置
     * @param storeId 门店ID
     * @param configs 分销比例配置列表
     * @return 是否成功
     */
    boolean batchUpdateStoreCommissionRates(Long storeId, List<CommissionConfigDTO> configs);
} 